package com.ms.service.inter;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ms.entity.QuaApplication;

import java.util.List;

/**
 * 资格申请服务接口
 * 定义资格申请相关业务方法
 */
public interface QuaApplicationService extends IService<QuaApplication> {

    /**
     * 1. 提交申请材料
     * 保存用户提交的申请信息
     * 只有举办方可以提交申请，系统自动填充举办方信息
     *
     * @param token 认证token
     * @param quaApplication 申请信息对象
     * @return 是否提交成功
     */
    boolean submitApply(String token, QuaApplication quaApplication);

    /**
     * 2. 查询申请状态
     * 根据举办方ID获取其所有的申请信息
     *
     * @param organizerId 举办方ID
     * @return 申请信息列表
     */
    List<QuaApplication> getApplyStatusByOrganizer(Integer organizerId);

    /**
     * 获取所有申请状态（供管理员使用）
     * 未审批的结果显示在最上方，同审批结果的数据按日期从老到新排序
     *
     * @return 所有申请信息列表，按指定规则排序
     */
    List<QuaApplication> getAllApplyStatusOrdered();

    /**
     * 3. 对资格申请进行审批处理
     * 管理员审核申请并更新审核结果
     *
     * @param quaApplication 包含审核结果的申请信息
     * @return 是否更新成功
     */
    boolean feedbackApplyResult(QuaApplication quaApplication);
}
